/**
 * 过滤空值并用指定分隔符连接字符串
 * @param {Array} values - 要连接的字符串数组
 * @param {string} separator - 分隔符，默认为逗号
 * @returns {string} 连接后的字符串
 *
 * @example
 * joinNonEmpty(['a', '', 'b', null, 'c'], ',') // 返回: 'a,b,c'
 * joinNonEmpty(['a', 'b', 'c'], '-') // 返回: 'a-b-c'
 * joinNonEmpty([], ',') // 返回: ''
 */
export const joinNonEmpty = (values, separator = ',') => {
  if (!Array.isArray(values)) {
    return '';
  }

  return values
    .filter((value) => value && value.toString().trim() !== '')
    .join(separator);
};

/**
 * 过滤空值并用逗号连接字符串
 * @param {Array} values - 要连接的字符串数组
 * @returns {string} 连接后的字符串
 *
 * @example
 * joinWithComma(['a', '', 'b', null, 'c']) // 返回: 'a,b,c'
 * joinWithComma([]) // 返回: ''
 */
export const joinWithComma = (values) => {
  return joinNonEmpty(values, ',');
};

/**
 * 检查字符串是否为空或只包含空白字符
 * @param {string} str - 要检查的字符串
 * @returns {boolean} 是否为空
 *
 * @example
 * isEmpty('') // 返回: true
 * isEmpty('   ') // 返回: true
 * isEmpty('hello') // 返回: false
 */
export const isEmpty = (str) => {
  return !str || str.toString().trim() === '';
};
